<template>
  <div class="app-container">
    <el-row :gutter="20">
      <el-col :span="24" :xs="24">
        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
          <el-form-item label="登录名" prop="userName">
            <el-input v-model="queryParams.userName" placeholder="请输入登录名" clearable size="mini"
                      style="width: 200px"
                      @keyup.enter.native="handleQuery"/>
          </el-form-item>
          <el-form-item label="手机号码" prop="phoneNum">
            <el-input v-model="queryParams.phoneNum" placeholder="请输入手机号码" clearable size="mini"
                      style="width: 200px"
                      @keyup.enter.native="handleQuery"/>
          </el-form-item>
          <el-form-item label="创建时间">
            <el-date-picker v-model="dateRange" clearable size="mini" style="width: 240px" value-format="yyyy-MM-dd"
                            type="daterange"
                            range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"/>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
          </el-form-item>
        </el-form>

        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
            <router-link :to="'/user/dept?estateId='+queryParams.estateId" class="link-type">
              <el-button icon="el-icon-back" size="mini">
                返 回
              </el-button>
            </router-link>
          </el-col>
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
                       v-hasPermi="['module:estateUser:add']">新增
            </el-button>
          </el-col>
          <!--          <el-col :span="1.5">-->
          <!--            <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"-->
          <!--              v-hasPermi="['module:estateUser:remove']">删除</el-button>-->
          <!--          </el-col>-->
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"/>
        </el-row>
        <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
          <el-tab-pane label="在职" name="1"/>
          <el-tab-pane label="离职" name="0"/>
        </el-tabs>

        <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="50" align="center"/>
          <el-table-column label="用户编号" align="center" prop="userId"/>
          <el-table-column label="所属小区" align="center" prop="estateName"/>
          <el-table-column label="所属部门" align="center" prop="deptName"/>
          <!--          <el-table-column label="登录名" align="center" prop="userName" />-->
          <el-table-column label="入职时间" align="center" prop="employmentTime"/>
          <el-table-column label="用户名" align="center" prop="sysUserName"/>
          <el-table-column label="是否在职" align="center" key="state">
            <template slot-scope="scope">
              <el-switch v-model="scope.row.state"
                         :active-value="1"
                         :inactive-value="0"
                         @change="handleChangeSaleOut(scope.row)"></el-switch>
            </template>
          </el-table-column>
          <!--          <el-table-column label="状态" align="center">-->
          <!--            <template slot-scope="scope">-->
          <!--              <div>-->
          <!--                <el-tag v-if="scope.row.state === 0" style="cursor: pointer" :type="'info'">离职</el-tag>-->
          <!--                <el-tag v-else style="cursor: pointer" :type=" '' ">在职</el-tag>-->
          <!--              </div>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column label="用户昵称" align="center" prop="nickName" width="250"/>
          <el-table-column label="是否是经理" align="center">
            <template slot-scope="scope">
              <div>
                <el-tag v-if="scope.row.isManager === 0" style="cursor: pointer" :type=" '' ">员工</el-tag>
                <el-tag v-if="scope.row.isManager === 1" style="cursor: pointer" :type=" 'success' ">主管</el-tag>
                <el-tag v-if="scope.row.isManager === 2" style="cursor: pointer" :type=" 'danger' ">经理</el-tag>
              </div>
            </template>
          </el-table-column>

          <!--          <el-table-column label="用户头像" align="center">-->
          <!--            <template slot-scope="scope">-->
          <!--              <a :href="scope.row.faceUrl" style="color: #42b983" target="_blank">-->
          <!--                <img :src="scope.row.faceUrl" alt="点击打开" class="el-avatar">-->
          <!--              </a>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column label="手机号码" align="center" prop="phoneNum"/>-->
          <!--          <el-table-column label="绑定微信" align="center" prop="wxNickName"/>-->
          <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width">
            <template slot-scope="scope">
              <!--              <el-button size="mini" type="text" icon="el-icon-edit" @click="bandWxUser(scope.row)"-->
              <!--                         v-hasPermi="['module:estateUser:edit']">绑定微信用户</el-button>-->
              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleImg(scope.row)"
              >上传照片
              </el-button>
              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
                         v-hasPermi="['module:estateUser:edit']">修改
              </el-button>
              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleSysUser(scope.row)"
                         v-hasPermi="['module:estateUser:houtai']">启用后台
              </el-button>
              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
                         v-if="this.activeName==0" v-hasPermi="['module:estateUser:remove']">删除
              </el-button>
            </template>
          </el-table-column>
        </el-table>

        <pagination v-show="total>0"
                    :total="total"
                    :page.sync="queryParams.pageNum"
                    :limit.sync="queryParams.pageSize"
                    @pagination="getList"/>
      </el-col>
    </el-row>

    <el-dialog :title="title" :visible.sync="open1" width="700px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
        <el-form-item label="上传照片" prop="imgUrl" style="width:95%;">
          <single-pic v-model="form.imgUrl" type="image" @handleChecked="chooseImg" :uploadType="8"
                      :num="1" :width="80" :height="80"/>
        </el-form-item>
        <el-form-item label="职务">
          <el-radio-group v-model="form.isManager" size="mini">
            <el-radio :value="0" :label="0">员工</el-radio>
            <el-radio :value="1" :label="1">主管</el-radio>
            <el-radio :value="2" :label="2">经理</el-radio>
          </el-radio-group>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="mini" @click="submitForm1">确 定</el-button>
        <el-button @click="cancel1" size="mini">取 消</el-button>
      </div>
    </el-dialog>

    <!-- 添加或修改参数配置对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
        <el-row>
          <el-col :span="12">
            <el-form-item label="真实姓名" prop="sysUserName">
              <el-input v-model="form.sysUserName" :disabled="form.userId!=null" placeholder="请输入登录名" maxlength="30" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="用户密码" prop="password">
              <el-input v-model="form.password" :disabled="form.userId!=null"  placeholder="请输入用户密码" type="password"
                        maxlength="20" show-password size="mini"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="手机号码" prop="phoneNum">
              <el-input v-model="form.phoneNum" :disabled="form.userId!=null"  placeholder="请输入手机号码" maxlength="11" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="邮箱" prop="email">
              <el-input v-model="form.email" :disabled="form.userId!=null"  placeholder="请输入邮箱" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="用户名" prop="nickName">
              <el-input v-model="form.nickName" :disabled="form.userId!=null"  placeholder="请输入用户名" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="用户性别">
              <el-select v-model="form.sex" placeholder="请选择" size="mini">
                <el-option v-for="dict in sexOptions"
                           :key="dict.dictValue"
                           :label="dict.dictLabel"
                           :value="dict.dictValue"/>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="民族">
              <el-input v-model="form.minzu" placeholder="请输入民族" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="政治面貌">
              <el-input v-model="form.zhengzhi" placeholder="请输入政治面貌" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="身份证号">
              <el-input v-model="form.idCard" placeholder="请输入身份证" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="健康情况">
              <el-input v-model="form.jiankang" placeholder="请输入健康情况" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="入职时间">
              <el-input v-model="form.employmentTime" placeholder="请输入入职时间" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="居住地址">
              <el-input v-model="form.address" placeholder="请输入居住地址" maxlength="50" size="mini"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="状态">
              <el-radio-group v-model="form.state" size="mini">
                <el-radio :value="0" :label="0">未启用</el-radio>
                <el-radio :value="1" :label="1">已启用</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="职务">
              <el-radio-group v-model="form.isManager" size="mini">
                <el-radio :value="0" :label="0">员工</el-radio>
                <el-radio :value="1" :label="1">主管</el-radio>
                <el-radio :value="1" :label="1">经理</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-form-item label="婚姻状况">
            <el-radio-group v-model="form.hunyin" size="mini">
              <el-radio :value="0" :label="0">未婚</el-radio>
              <el-radio :value="1" :label="1">已婚</el-radio>
              <el-radio :value="1" :label="1">保密</el-radio>
            </el-radio-group>
          </el-form-item>
        </el-row>
        <!--        </el-row>-->
        <el-row>
          <el-col :span="24">
            <el-form-item label="个人经历">
              <el-input v-model="form.jingli" type="textarea" placeholder="请输入个人经历" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="个人特长">
              <el-input v-model="form.techang" type="textarea" placeholder="请输入个人特长" size="mini"/>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="备注">
              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" size="mini"/>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="mini" @click="submitForm">确 定</el-button>
        <el-button @click="cancel" size="mini">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import {
  listByEstate,
  listUser,
  getUser,
  delUser,
  addUser,
  updateUser,
  resetUserPwd,
  stateSaleOutStatus
} from "@/api/module/estate/user";
import {
  updateSysUser,
} from "@/api/system/user";
// import { getToken } from "@/utils/auth";
// import { listMpSearch,updateMp } from "@/api/module/wx/mpuser";

import {listByNickName} from "@/api/module/wx/user";
import singlePic from '@/components/SingleMaterial'
import {
  updateUser as updateEstateUser,
  addUser as addEstateUser,
  listUser as listEstateUser,
  delUser as delEstateUser,
  updateManager,
  listEventUser
} from "@/api/module/estate/user";

import {treeselect} from "@/api/system/dept";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {listAllEstate} from "@/api/module/estate/estate";

export default {
  name: "User",
  components: {
    Treeselect, singlePic,
  },
  data() {
    return {
      activeName: "1",
      // 遮罩层
      loading: true,
      // 导出遮罩层
      exportLoading: false,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 用户表格数据
      userList: [],
      // 弹出层标题
      title: "",
      titleUser: "",
      // 部门树选项
      deptOptions: undefined,
      // 是否显示弹出层
      open: false,
      open1: false,
      openUser: false,
      queryParamsWxUser: {
        nickName: undefined,
        userNo: undefined,
      },
      formUserMp: {
        id: undefined,
        estateId: undefined,
        nickName: undefined,
        faceUrl: undefined,
        sysUserId: undefined,
        userId: undefined,
        userType: 3
      },
      wxUserOptions: [],
      // 部门名称
      deptName: undefined,
      // 默认密码
      initPassword: undefined,
      // 日期范围
      dateRange: [],
      // 状态数据字典
      statusOptions: [],
      // 性别状态字典
      sexOptions: [],
      // 岗位选项
      postOptions: [],
      // 角色选项
      roleOptions: [],
      estateUserList: [],
      estateList: [],
      // 表单参数
      form: {},
      defaultProps: {
        children: "children",
        label: "label"
      },
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        userType: undefined,
        deptId: undefined,
        estateId: undefined,
        userName: undefined,
        phoneNum: undefined,
        state: 1,
      },
      // 列信息
      columns: [
        {key: 0, label: `用户编号`, visible: true},
        {key: 1, label: `登录名`, visible: true},
        {key: 2, label: `用户昵称`, visible: true},
        {key: 3, label: `部门`, visible: true},
        {key: 4, label: `手机号码`, visible: true},
        {key: 5, label: `状态`, visible: true},
        {key: 6, label: `创建时间`, visible: true}
      ],
      // 表单校验
      rules: {
        sysUserName: [
          {required: true, message: "真实姓名不能为空", trigger: "blur"}
        ],
        nickName: [
          {required: true, message: "用户姓名不能为空", trigger: "blur"}
        ],
        password: [
          {required: true, message: "用户密码不能为空", trigger: "blur"},
          {min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur'}
        ],
        email: [
          {
            type: "email",
            message: "'请输入正确的邮箱地址",
            trigger: ["blur", "change"]
          }
        ],
        phoneNum: [
          {required: true, message: "手机号不能为空", trigger: "blur"},
          {
            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
            message: "请输入正确的手机号码",
            trigger: "blur"
          }
        ],
      }
    };
  },
  watch: {
    // 根据名称筛选部门树
    deptName(val) {
      this.$refs.tree.filter(val);
    }
  },
  created() {
    console.log('section  this.$route.query', this.$route.query);
    this.queryParams.estateId = this.$route.query.estateId ? this.$route.query.estateId : undefined;
    this.queryParams.deptId = this.$route.query.deptId ? this.$route.query.deptId : undefined;
    this.getEstateList();
    this.getList();
    this.getTreeselect();
    this.getDicts("sys_normal_disable").then(response => {
      this.statusOptions = response.data;
    });
    this.getDicts("sys_user_sex").then(response => {
      this.sexOptions = response.data;
    });
    this.getConfigKey("sys.user.initPassword").then(response => {
      this.initPassword = response.msg;
    });
  },
  methods: {
    /** 查询用户列表 */
    getList() {
      this.loading = true;
      listUser(this.queryParams).then(response => {
          this.userList = response.rows;
          this.total = response.total;
          this.loading = false;
        }
      );
      // listByEstate(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
      //     this.userList = response.rows;
      //     this.total = response.total;
      //     this.loading = false;
      //   }
      // );
    },
    handleClick(val) {
      console.log('handleClick', val.name);
      this.activeName = val.name;
      this.queryParams.state = parseInt(val.name);
      this.getList();
    },
    handleChangeSaleOut(row) {
      let text = row.state === 0 ? "在职" : "离职";
      this.$confirm('确认要修改"' + text + '"的在职状态吗?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        return stateSaleOutStatus(row.id, row.state);
      }).then(() => {
        this.msgSuccess("修改 " + text + "成功");
        this.getList();
      }).catch(function () {
        row.state = row.state === "0" ? "1" : "0";
      });
    },
    getEstateList() {
      listAllEstate(this.queryParams).then(response => {
          this.estateList = response.data;
        }
      );
    },
    changeMpUser(val) {
      this.formUserMp.userId = val;
      this.formUserMp.estateId = this.queryParams.estateId;
    },
    getListMpSearch() {
      this.queryParamsWxUser.userNo = this.form.userNo;
      this.formUserMp.estateId = this.queryParams.estateId;
      listByNickName(this.queryParamsWxUser).then(response => {
        console.log('getListMpSearch', response.data);
        this.wxUserOptions = response.data;
      });
    },
    getEstateUserList(sysUserId) {
      this.formUserMp.estateId = this.queryParams.estateId;
      this.formUserMp.sysUserId = sysUserId;
      listEstateUser(this.formUserMp).then(response => {
        console.log('getMerUserList', response.rows);
        this.estateUserList = response.rows;
      });
    },
    chooseImg(data) {
      console.log("chooseImg", data);
      if (data.length > 0) {
        console.log("imgPath", data[0].url);
        this.form.imgUrl = data[0].url;
      }
    },
    // 用户状态修改
    handleIsAdminChange(row) {
      let text = row.isAdmin === "0" ? "关闭" : "开启";
      this.$confirm('确认要"' + text + '""' + '"吗?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        // row.isAdmin =
        return updateManager(row);
      }).then(() => {
        this.msgSuccess(text + "成功");
        this.getMerUserList(this.formMerUser.sysUserId)
      }).catch(function () {
        // row.status = row.status === "0" ? "1" : "0";
        this.getMerUserList(this.formMerUser.sysUserId)
      });
    },
    // 用户状态修改
    handleUpdateEstateUser(row) {
      let text = row.state === "0" ? "禁用" : "启用";
      this.$confirm('确认要"' + text + '""' + '"该用户吗?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        return updateEstateUser(row);
      }).then(() => {
        this.msgSuccess(text + "成功");
        this.getMerUserList(this.formMerUser.sysUserId)
      }).catch(function () {
        // row.status = row.status === "0" ? "1" : "0";
        this.getMerUserList(this.formMerUser.sysUserId)
      });
    },
    /** 查询部门下拉树结构 */
    getTreeselect() {
      treeselect().then(response => {
        this.deptOptions = response.data;
      });
    },
    // 筛选节点
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    },
    // 节点单击事件
    handleNodeClick(data) {
      this.queryParams.deptId = data.id;
      this.getList();
    },
    // 用户状态修改
    handleStatusChange(row) {
      let text = row.status === "0" ? "启用" : "停用";
      this.$confirm('确认要"' + text + '""' + row.userName + '"用户吗?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        return changeUserStatus(row.userId, row.status);
      }).then(() => {
        this.msgSuccess(text + "成功");
      }).catch(function () {
        row.status = row.status === "0" ? "1" : "0";
      });
    },
    handleManagerChange(row) {
      let text = row.status === "0" ? "启用" : "停用";
      this.$confirm('确认要"' + text + '""' + row.userName + '"管理员吗?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        return updateUser(row.userId, row.status);
      }).then(() => {
        this.msgSuccess(text + "成功");
      }).catch(function () {
        row.status = row.status === "0" ? "1" : "0";
      });
    },
    selectUserType(val) {
      console.log("selectUserType", val);
      updateEstateUser(val).then(response => {
        this.msgSuccess("修改成功");
      });
    },
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // 取消按钮
    cancel1() {
      this.open1 = false;
      this.reset();
    },
    // 表单重置
    reset() {
      this.form = {
        userId: undefined,
        roleId: 4,
        estateId: this.queryParams.estateId,
        deptId: undefined,
        userType: 3,
        userName: undefined,
        nickName: undefined,
        password: undefined,
        phoneNum: undefined,
        email: undefined,
        sex: undefined,
        status: "0",
        remark: undefined,
        isManager: undefined,
        sysUserName: undefined,
        jingli: undefined,
        techang: undefined,
        address: undefined,
        hunyin: undefined,
        jiankang: undefined,
        zhengzhi: undefined,
        minzu: undefined,
        idCard: undefined,
        employmentTime: undefined,
      };
      this.resetForm("form");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRange = [];
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.userId);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
    },
    // 更多操作触发
    handleCommand(command, row) {
      switch (command) {
        case "handleResetPwd":
          this.handleResetPwd(row);
          break;
        case "handleAuthRole":
          this.handleAuthRole(row);
          break;
        default:
          break;
      }
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.getTreeselect();
      this.open = true;
      this.form.estateId = this.queryParams.estateId;
      this.form.deptId = this.queryParams.deptId;
      // getUser().then(response => {
      //   this.postOptions = response.data.posts;
      //   this.roleOptions = response.data.roles;
      //   this.open = true;
      //   this.title = "添加用户";
      //   this.form.password = this.initPassword;
      // });
    },
    bandWxUser(row) {
      this.openUser = true;
      this.titleUser = "绑定管理员微信";
      console.log('bandWxUser', row);
      this.getEstateUserList(row.userId);
      this.formUserMp.id = row.estateUserId;
      this.formUserMp.sysUserId = row.userId;
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      this.getTreeselect();
      const id = row.id || this.ids;
      getUser(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改用户";
        this.form.password = "";
      });
    },
    handleImg(row) {
      this.open1 = true;
      this.form.id = row.id;
      console.log(row.id)
    },
    /** 重置密码按钮操作 */
    handleResetPwd(row) {
      this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        closeOnClickModal: false,
        inputPattern: /^.{5,20}$/,
        inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
      }).then(({value}) => {
        resetUserPwd(row.userId, value).then(response => {
          this.msgSuccess("修改成功，新密码是：" + value);
        });
      }).catch(() => {
      });
    },
    /** 分配角色操作 */
    handleAuthRole(row) {
      const userId = row.userId;
      this.$router.push("/system/user-auth/role/" + userId);
    },
    /** 提交按钮 */
    submitForm1() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          updateUser(this.form).then(response => {
            this.msgSuccess("修改成功");
            this.open1 = false;
            this.getList();
          });
        }
      });
    },
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.userId !== undefined) {
            updateUser(this.form).then(response => {
              this.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addUser(this.form).then(response => {
              this.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    // submitFormUser(){
    //   this.$refs["form"].validate(valid => {
    //     if (valid) {
    //       this.buttonLoading = true;
    //       if (this.formUserMp.userId != null) {
    //         addEstateUser(this.formUserMp).then(response => {
    //           this.msgSuccess("绑定成功");
    //           // this.openUser = false;
    //           this.getEstateUserList(this.formUserMp.sysUserId);
    //         }).finally(() => {
    //           this.buttonLoading = false;
    //         });
    //       } else {
    //         this.msgError("请选择用户");
    //       }
    //     }
    //   });
    // },
    /** 删除按钮操作 */
    handleDelete(row) {
      const userIds = row.id || this.ids;
      this.$confirm('是否确认删除用户编号为"' + userIds + '"的数据项?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        return delUser(userIds);
      }).then(() => {
        this.getList();
        this.msgSuccess("删除成功");
      }).catch(() => {
      });
    },
    handleSysUser(row) {
      const userIds = row.id || this.ids;
      this.$confirm('是否确认启用为"' + userIds + '"的后台账户?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        return updateSysUser(userIds);
      }).then(() => {
        this.getList();
        this.msgSuccess("启用成功");
      }).catch(() => {
      });
    },
    handleDeleteEstate(row) {
      this.$confirm('是否确认删除"' + row.wxUserName + '"?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(function () {
        return delEstateUser(row.id);
      }).then(() => {
        this.getEstateUserList(this.formUserMp.sysUserId);
        this.msgSuccess("删除成功");
      }).catch(() => {
      });
    },
  }
};
</script>


<style lang="scss" scoped>
.wx-user {
  height: 130px;
  overflow-y: scroll;
  line-height: 40px;

}
</style>
